In distributed network environments (including peer-to-peer networks where users share access to each others hard drives, as well as file server networks having a plurality of remote computers coupled to a central file server), users often create documents that are saved to a shared server. Each user on the network may then have access to a copy (the "master copy") of each document for the purposes of editing the copy saved on the shared server. Word processing programs currently available in the industry all perform their functions by working off of a disk. In the network environment based on a shared file server, the master copy is accessed from the file server disk and repeatedly saved backed to the file server disk as each user in turn makes edits to the document. Currently, only one user can access the master copy from the file server at a time and save back over the master copy to thereby update the old version of the master copy. If any other user attempts to access the document from the file server disk while another user is using the master copy, the second user will be denied access and will be informed that the master copy is "currently in use".
Some word processing programs attempt to bypass this "currently in use" situation by creating an alias and having the subsequent user view a copy of the master copy. The user is then informed that the master copy is currently in use and that the document is read only. Therefore, the user must save the alias copy of the master copy under a different name if any edits are made and saved.
Because simultaneous, multi-user editing is not currently possible, there will not be a single master copy of the document that reflects all the edits made by the users that may have accessed the master copy of the document. Thus, there will not be a single reconciled version of the master copy that reflects all the edits.
Consequently, there is a need for a system and method for simultaneous, multi-user editing of the master copy of a document available over a network from a file server to a number of users. That need is especially keen when dealing with distributed network systems where a number of users need to regularly access common documents from a file server disk. Without simultaneous, multi-user editing capability, users will have to wait to gain access to the document while others complete their use of the document.
There is also a need for a system and method for reconciling various edited versions of the master copy of a document that is simultaneously edited by a number of users in a network system. In addressing the simultaneous, multi-user editing capability, problems arise with the sequencing and timing of the various saving actions by the plurality of users. There will be many situations where several users will attempt to save at the same time. This creates a timing problem and, thus, there is a need for providing for the specific control and regulation of the sequential saving by the plurality of users. In addition, the timing and control needs to take into consideration the reconciliation activity that may be required as users save their edited versions.
Other problems exist, when addressing simultaneous, multi-user editing capabilities, such as the recognition of conflicts. Conflicts may arise during the reconciling process, for example, where several users may be attempting to simultaneously edit the same area of the document. These types of conflicts must be resolved before allowing the user to save his edits. Thus, there is a need for a system and method to detect conflict situations and facilitate the resolution of such conflicts before the user saves his edits.
In providing a system and method for simultaneous, multi-user editing in a network environment, problems may arise when a user finishes editing a document and suspends work without closing the document. Therefore, there is a further need to provide for the manual removal of users from a simultaneous, multi-user editing system when such users have suspended editing the document without closing the document. For an efficient simultaneous, multi-user editing system, the inactive user can be removed by other users when the inactive user inadvertently fails to close the document when he or she suspends editing. In addition, there is a need for a simultaneous, multi-user editing system that provides for the automatic recovery from a system failure where all the active users will be reconnected as the system starts back up, and the system will be reconfigured to the state that existed before the system failure occurred.
In general, the need for simultaneous, multi-user editing systems is needed in networked systems where multi-user sharing capabilities are provided in peer-to-peer systems where users share access to each others hard drives, as well as in file server networks having a plurality of remote computers coupled to the file server. However, the systems currently available today in the industry do not provide for the simultaneous, multi-user editing capabilities in such network environments.
Therefore, in the context of word processing within a network environment, there is a long felt need for a word processing program that provides for the simultaneous, multi-user editing capabilities. Additionally, there is a need to control the timing and sequential order of the various saving actions from the plurality of users while also providing for the detection and resolution of conflicts during reconciliation of the edits from various users. Further, there is a need to provide for the automatic recovery from a system failure as well as the need to provide for the manual removal of users from the system.